package com.sky.service;

import com.sky.dto.*;
import com.sky.entity.OrderDetail;
import com.sky.entity.Orders;
import com.sky.result.PageResult;
import com.sky.result.Result;
import com.sky.vo.OrderPaymentVO;
import com.sky.vo.OrderStatisticsVO;
import com.sky.vo.OrderSubmitVO;
import com.sky.vo.OrdersDetailVO;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

public interface OrderService {

    Result<OrderSubmitVO> submit(OrdersSubmitDTO ordersSubmitDTO);

    Result<Map<String,LocalDateTime>> payment(OrdersPaymentDTO ordersPaymentDTO) throws Exception;

    //LocalDateTime paySuccess(Orders orders,Integer payMethod) throws Exception;

    Result<OrdersDetailVO> getOrderDetail(Long orderId);

    Result reminder(Long orderId);

    Result repetition(Long orderId);

    Result<PageResult> pageQueryOrders(Integer pageSize, Integer page,Integer status);

    Result UserCancel(Long orderId);



    Result<PageResult> conditionSearch(OrdersPageQueryDTO ordersPageQueryDTO);

    Result<OrderStatisticsVO> statistics();

    Result AdminCancel(OrdersCancelDTO ordersCancelDTO);

    Result confirm(OrdersConfirmDTO ordersConfirmDTO);

    Result rejection(OrdersRejectionDTO ordersRejectionDTO);

    Result delivery(Long orderId);

    Result complete(Long orderId);
}
